package com.qk.management.aop.anno;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

/**
 * author：zzq
 * createTime：2025/10/18 09:06
 * description： 缓存注解标记当前方法需要使用缓存增强
 */
@Documented
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Cacheable {
    /**
     * redis缓存key
     * @return redis的key
     */
    String key() default "";

    /**
     * redis缓存key的前缀
     * @return redis的key的前缀
     */
    String keyPrefix() default "";

    /**
     * redis缓存key的过期时间
     * @return redis的key的过期时间
     */
    long expireTime() default 0;

    /**
     * 过期时间
     * @return 时间单位
     */
    TimeUnit expireTimeUnit() default TimeUnit.SECONDS;
}
